/*
 * =====================================================================================
 *
 *       Filename:  HanFeiziObservable.h
 *
 *    Description:被观察者1
 *
 *        Version:  1.0
 *        Created:  12/30/2021 05:52:10 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  first_name last_name (fl), fl@my-company.com
 *        Company:  my-company
 *
 * =====================================================================================
 */

#pragma once
#include "IObservable.h"
#include "IObserver.h"
#include <vector>
using std::vector;
class HanFeiziObservable: public IObservable {
  public:
    HanFeiziObservable(void);
    ~HanFeiziObservable(void);

    //virtual
    void AddObserver(IObserver* pObserver);
    void DeleteObserver(IObserver* pObserver);
    void NotifyObservers(string context);

    //
    void HaveBreakfast();
    void HaveFun();
  private:
    vector < IObserver* >m_observerList;    //观察者列表
    typedef vector < IObserver* >::const_iterator ObserverList_C_iterator;
};
